var MENSAJE_ERROR = 1;
var MENSAJE_ALERTA = 2;
var MENSAJE_INFO = 3;
var MENSAJE_OK = 4;
var CODIGO_VALOR_DUPLICADO = -100;
var CODIGO_ERROR = -200;
var CODIGO_SIN_CONEXION = -201;
var CODIGO_SIN_SESION = -500;
var CODIGO_EXITO = 200;
var CODIGO_SIN_DATOS = 404;
var ADMINISTRADOR = "1";
var MODERADOR = "2";
var USUARIO = "3";
var ESCORT = "4";
var prefijoControl = "ctl0_cphMain_";

var Url = {
  // public method for url encoding
  encode : function (string) {
    return escape(this._utf8_encode(string));
  },

  // public method for url decoding
  decode : function (string) {
    return this._utf8_decode(unescape(string));
  },

  // private method for UTF-8 encoding
  _utf8_encode : function (string) {
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";

    for (var n = 0; n < string.length; n++) {

      var c = string.charCodeAt(n);

      if (c < 128) {
        utftext += String.fromCharCode(c);
      }
      else if((c > 127) && (c < 2048)) {
        utftext += String.fromCharCode((c >> 6) | 192);
        utftext += String.fromCharCode((c & 63) | 128);
      }
      else {
        utftext += String.fromCharCode((c >> 12) | 224);
        utftext += String.fromCharCode(((c >> 6) & 63) | 128);
        utftext += String.fromCharCode((c & 63) | 128);
      }

    }

    return utftext;
  },

  // private method for UTF-8 decoding
  _utf8_decode : function (utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;

    while ( i < utftext.length ) {

      c = utftext.charCodeAt(i);

      if (c < 128) {
        if(c == 43) {
          string += " ";
        } else {
          string += String.fromCharCode(c);
        }
        i++;
      }
      else if((c > 191) && (c < 224)) {
        c2 = utftext.charCodeAt(i+1);
        string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
        i += 2;
      }
      else {
        c2 = utftext.charCodeAt(i+1);
        c3 = utftext.charCodeAt(i+2);
        string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
        i += 3;
      }

    }

    return string;
  }

}

function cargarMsj(control, msj, tipoMsj){
  switch (eval(tipoMsj)) {
    case MENSAJE_ERROR:
      jQuery("#"+control).addClass("da-message error");
      break;
    case MENSAJE_ALERTA:
      jQuery("#"+control).addClass("da-message warning");
      break;
    case MENSAJE_INFO:
      jQuery("#"+control).addClass("da-message info");
      break;
    default:
      jQuery("#"+control).addClass("da-message success");
      break;
  }
  jQuery("#"+control).html(msj);
  jQuery("#"+control).show();
}

function eliminarRegistro(opciones) {
  var queryString = "";

  //construye queryString
  queryString += "page=" + opciones.urlAjax;
  queryString += "&op="+ opciones.opcionAjax;
  queryString += "&id=" + opciones.idRegistro;
  queryString += "&urlRespuesta=" + Url.encode(opciones.urlRespuesta);
  queryString += "&parametrosUrlRespuesta=" + ((opciones.parametrosUrlRespuesta == "") ? "" : Url.encode(JSON.stringify(opciones.parametrosUrlRespuesta)));

  if (confirm("¿Esta seguro de eliminar el registro?")) {
    var okFunc = function(t) {
      var respuesta = jQuery.trim(t);
      if (respuesta == CODIGO_ERROR) {
        alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
      }
      else {
        var json = respuesta;
        var data = jQuery.parseJSON(json);

        top.location.href = "index.php?page=" + data.urlRespuesta;
      }
    }
    var errFunc = function(t) {
      alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
    }
    jQuery.ajax({
      url: "index.php",
      type: "post",
      async: true,
      data: queryString,
      success: okFunc,
      error: errFunc
    });
  }  

}

function mostrarPanelTipoUsuario(){
  var ddlTipoUsuario = document.getElementById(prefijoControl + "ddlTipoUsuario_ddlCombo");
  var pnlDatosTipoUsuario = document.getElementById(prefijoControl + "pnlDatosTipoUsuario");
  var pnlEscort = document.getElementById(prefijoControl + "pnlEscort");

  if(ddlTipoUsuario.value == ESCORT){
    pnlDatosTipoUsuario.style.display = "block";
    pnlEscort.style.display = "block";
  } else {
    pnlDatosTipoUsuario.style.display = "none";
    pnlEscort.style.display = "none";
    //ssss
  }
}

function eliminarImagen(opciones) {
  var queryString = "";

  //construye queryString
  queryString += "page=" + opciones.urlAjax;
  queryString += "&op="+ opciones.opcionAjax;
  queryString += "&id=" + opciones.id;
  queryString += "&entidad=" + opciones.entidad;
  queryString += "&src=" + Url.encode(opciones.src);
  queryString += "&path=" + Url.encode(opciones.path);
  queryString += "&pathThumbs=" + Url.encode(opciones.pathThumbs);
  queryString += "&themeBaseUrl=" + Url.encode(opciones.themeBaseUrl);

  if (confirm("¿Esta seguro de eliminar el registro?")) {
    var okFunc = function(t) {
      var respuesta = jQuery.trim(t);
      if (respuesta == CODIGO_ERROR) {
        alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
      }
      else {
        var json = respuesta;
        var data = jQuery.parseJSON(json);

        if (data.tipoMensaje == MENSAJE_ERROR){
          alert(data.mensaje);
        } else {
          jQuery("#" + opciones.nombreContenedor).html("<span class=\"span12\"><i>No tiene imagen asociada</i></span>");
        }
      }
    }
    var errFunc = function(t) {
      alert("Ha ocurrido un error interno y no se pudo eliminar el registro");
    }
    jQuery.ajax({
      url: "index.php",
      type: "post",
      async: true,
      data: queryString,
      success: okFunc,
      error: errFunc
    });
  }

}

function obtenerPagosPorUsuario(opciones) {
  var queryString = "";

  //construye queryString
  queryString += "page=Usuario.Ajax";
  queryString += "&op=ObtenerPagosPorUsuario";
  queryString += "&id=" + opciones.idUsuario;
  queryString += "&nombreTabla=" + Url.encode(opciones.nombreTabla);

  var okFunc = function(t) {
    var respuesta = jQuery.trim(t);
    if (respuesta == CODIGO_ERROR) {
      alert("Ha ocurrido un error interno y no se pudo obtener el listado de pagos");
    }
    else {
      jQuery("#" + opciones.nombreContenedor).html(respuesta);
      
      jQuery('#' + opciones.nombreTabla).dataTable( {
          "bPaginate": true,
          "sPaginationType": "full_numbers",
          "bLengthChange": true,
          "bFilter": true,
          "bSort": true,
          "bInfo": true,
          "bInfoEmpty": true,
          "bLoadingRecords": true,
          "bAutoWidth": false,
          "iDisplayLength": 10,
          "aaSorting": [[0, 'desc']],
          oLanguage:{
              sLoadingRecords: "Cargando registros...",
              sEmptyTable: "No hay registros para mostrar",
              sZeroRecords: "No se encontraron registros para mostar",
              sProcessing: "Procesando...",
              sInfo: "Mostrando _START_ a _END_ de _TOTAL_ registros.",
              sInfoEmpty: "Mostrando 0 registros.",
              sSearch: "Buscar: ",
              sLengthMenu: "Mostrar _MENU_ registros",
              oPaginate: {
                  sFirst: "Primera",
                  sPrevious: "Anterior",
                  sNext: "Siguiente",
                  sLast: "&Uacute;ltima"
              }
          }
      });

    }
  }
  var errFunc = function(t) {
    alert("Ha ocurrido un error interno y no se pudo obtener el listado de pagos");
  }
  jQuery.ajax({
    url: "index.php",
    type: "post",
    async: true,
    data: queryString,
    success: okFunc,
    error: errFunc
  });
}

function abrirFormularioPago(opciones){
  var queryString = "";
  queryString += "&idPago=" + opciones.idPago;
  queryString += "&idUsuario=" + opciones.idUsuario;

  jQuery.fancybox({
    width: "100%",
    height: 430,
    modal: false,
    type: "iframe",
    href: "index.php?page=Usuario.FormPago" + queryString
  });
}

function redireccionarPagina(opciones) {
  var queryString = "";

  queryString += "?page=" + opciones.pagina;
  queryString += "&a=" + opciones.argumento;

  top.location.href = "index.php" + queryString;
}



